Ano, uznávám, že jsem se s tím pliváním nechal trochu unést :-( a omlouvám se za to. Nějak mne rozpálila ta nesmyslná interpretace výsledků. A nejde o nějaké fandovství, jak tvrdí Son_of_the:_bit, ale o technickou podstatu problému.
Normální režim u procesorů se SMT je s aktivním SMT a nemá smysl ho vypínat. Až na výjimky, kdy OS místo přednostního zaplňování volných fyzických jader posílá v nevytíženém procesoru úlohy na virtuální jádra. Problém je to hlavně u jednojádrově náročných procesů, jako jsou třeba špatně optimalizované hry, které nevyužijí celkový výkon CPU. A i v takových případech je to jen berlička na dobu, než výrobce procesoru s autory OS vyřeší korektní fungování plánovače procesů.
U procesorů se SMT má tedy smysl právě opačný pohled, než je ten prezentovaný v článku. Podstatné je, kolik ztratím z maximálního výkonu, když vypnu SMT, a jestli tím případně něco získám na snížení spotřeby. U Ryzenu se vypnutím SMT sníží maximální výkon a úměrně tomu i spotřeba, což je celkem očekávané a korektní chování. Ale SMT nemá smysl vypínat, protože zpracování výpočetně náročné úlohy spotřebuje stejné množství energie a bude trvat zbytečně déle.
U toho Intelu dojde vypnutím SMT taky ke snížení výkonu, ale spotřeba se téměř nezmění a efektivita procesoru tedy klesne. Což je poněkud překvapivé chování a nedává konstruktérům Intelu zrovna dobré vysvědčení. Vypínání SMT u Intelu je tedy nesmysl nejen z pohledu výkonu a času zpracování, ale i z pohledu spotřeby.
Mimochodem SMT není žádná technologie AMD, ale obecné označení pro mechanismus umožňující lepší využití zdrojů jádra, tím že se navenek jádro tváří jako více jader a ta další virtuální jádra využívá zdroje, které zrovna nejsou vytížena zpracováním požadavků prvního jádra (viz odkaz dole). HT je (v podstatě marketingové) označení implementací SMT v procesorech Intel. Koncept SMT byl prvně implementován roku 1968 v počítačích IBM, tedy dávno před vznikem x86 procesorů.
Tvrzení, že je SMT na ústupu, se mi zdá dost odvážné. Zrovna výsledky v článku zmíněných testů ukazují, jak užitečný ten koncept je. U Ryzenu získáte přidáním trochy křemíku čtvrtinu výkonu navíc. U Intelu získáte 18% výkonu a ještě o něco zlepšíte jeho mizernou efektivitu. Nejsem konstruktér CPU, ani jsem to nějak moc nestudoval, ale troufnu si odhadnout, že (ne)užitečnost SMT bude záviset na celkové koncepci procesoru. U jednoduchých jader typu ARM (RISC), která jsou na úrovni paralelismu vykonávání (jednoduchých) instrukcí schopna vytížit většinu zdrojů, které má jádro k dispozici, zavedení SMT asi moc smysl nedává. U x86 jader, která mají zřejmě různorodější instrukční soubor i zdroje, SMT zjevně smysl dává.
To že Intel do svých malých jader SMT nedává a u velkých je někde vypíná, podle mne neukazuje slabost SMT konceptu, ale spíš konstrukční slabost (a obchodní sílu) Intelu. Podle zveřejněných testů nejsou malá jádra efektivnější (výkon/spotřeba), ale zabírají méně křemíku. Už si nepamatuji, jak vychází porovnání P a E jader Intelu z pohledu výkon/plocha křemíku, ale myslím, že to nebylo to, co Intel trápilo nejvíc.
Když AMD začalo procesorům přidávat jádra a díky čipletům jich tam mohlo dát opravdu hodně, měl Intel velký problém. Při nižší kvalitě svých výrobních procesů a velikosti jader nedokázal do svých monolitů dostat stejný počet jader při rozumné výtěžnosti. A naprostá většina uživatelů se při koupi nerozhoduje podle výkonů v testech, ale podle jednoduchých čísel ve specifikacích, jako je třeba právě počet jader. Tak místo velkých jader se SMT začali dělat ty malá, kterých se vejde víc. Když se ukázalo, že Windows, jako majoritní x86 operační systém, i některé aplikace mají s různorodostí jader problém, začal to Intel řešit vypínáním toho, co mají velká jádra navíc. Ale nejsem si jist jestli i SMT patří do téhle kategorie. Intel SMT u svých procesorů vypínal odjakživa, protože tím rozšiřoval nabídku a nutil lidi, aby mu za SMT připlatili.
https://sk.wikipedia.org/wiki/Simult%C3%A1nny_multithreading